// Copyright © SixtyFPS GmbH <info@slint.dev>
// SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-2.0 OR LicenseRef-Slint-Software-3.0

import { StyleMetrics, Button } from "std-widgets-impl.slint";

export component StandardButton {
    in property <StandardButtonKind> kind;
    in property <bool> enabled <=> base.enabled;
    in property <bool> primary <=> base.primary;
    out property <bool> has-focus <=> base.has-focus;
    out property <bool> pressed <=> base.pressed;

    forward-focus: base;

    callback clicked <=> base.clicked;

    HorizontalLayout {
        base := Button {
            text:
                root.kind == StandardButtonKind.ok ? "OK" :
                root.kind == StandardButtonKind.cancel ? "Cancel" :
                root.kind == StandardButtonKind.apply ? "Apply" :
                root.kind == StandardButtonKind.close ? "Close" :
                root.kind == StandardButtonKind.reset ? "Reset" :
                root.kind == StandardButtonKind.help ? "Help" :
                root.kind == StandardButtonKind.yes ? "Yes" :
                root.kind == StandardButtonKind.no ? "No" :
                root.kind == StandardButtonKind.abort ? "Abort" :
                root.kind == StandardButtonKind.retry ? "Retry" :
                root.kind == StandardButtonKind.ignore ? "Ignore" : "";
        }
    }
}
